#include <glib/g2/types.h>
#include <glib/g2/rectangle.h>
#include <glib/g2/region.h>
#include <math/pi.h>

namespace g2 {

rectangle::rectangle(const vector & center, double su, double sv) :
	_center(center), _su(su), _sv(sv), _angle(0)
{
}

region rectangle::flatten(double h) const
{
	contour c;
	vector du(_su/2 * cos(_angle), _sv/2 * sin(_angle));
	vector dv(- _su/2 * sin(_angle), _sv/2 * cos(_angle));
	c.push_back(_center - du - dv);
	c.push_back(_center + du - dv);
	c.push_back(_center + du + dv);
	c.push_back(_center - du + dv);
	return region(c);
}

vector rectangle::center() const
{
	return _center;
}

box rectangle::bounds() const
{
	return box();
}

void rectangle::translate(const vector & t)
{
	_center += t;
}

void rectangle::rotate(const vector & center, double angle)
{
	// 
	assert(false);
}

} // g2
